CC=gcc
CXX=g++
EXTRADEFS=-DLINUX_OS \
	-DGIMI_NO_DATATYPE_INCLUDES
INCLUDES=-I. -I.. -I../../utils
CFLAGS=-O0 -g3 -Wall $(INCLUDES) $(CE) \
	$(EXTRADEFS) `libpng-config --cflags`
CPPFLAGS=-O0 -g3 -Wall $(INCLUDES) -Weffc++ $(CE) \
	$(EXTRADEFS) `libpng-config --cflags`
LD=g++
LDFLAGS=
LIBS=-lrt -lpthread -ljpeg `libpng-config --libs`

# Define COMPILE and LINK commands
COMPILEC=$(CC) $(CFLAGS) -c
COMPILECPP=$(CXX) $(CPPFLAGS) -c
LINK=$(LD) $(LDFLAGS)

.PHONY: all clean


###############################################################################
###############################################################################
# To compile ALL examples

all:	PNGDecoder_example
###############################################################################
#################### Rules for different example programs #####################
###############################################################################

# Rule for PNGDecoder EXAMPLE
PNGDECODER_OBJECTS=PNGDecoder.opp PNGDecoder_example.opp \
	../../utils/owndebug.o ../../utils/ownutils.o
PNGDecoder_example: $(PNGDECODER_OBJECTS)
	$(LINK) -o $@ $^ $(LIBS)
###############################################################################
###############################################################################
###############################################################################
# To clean up
clean:
	rm -f *~ \
	$(PNGDECODER_OBJECTS)

realclean: clean
	rm -f \
	PNGDecoder_example *.rgb
###############################################################################
###############################################################################

# Compile rule for all .o (.c) file
%.o:	%.c
	$(COMPILEC) -o $@ $<

# Compile rule for all .opp (.cpp) files
%.opp:	%.cpp
	$(COMPILECPP) -o $@ $<

# Dependency generation rule: For all required '.d' files
%.d:	%.c
	$(CC) -MM $(CFLAGS) $< > $@.$$$$; \
	sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
	rm -f $@.$$$$

# Dependency generation rule: For all required '.dpp' files
%.dpp:	%.cpp
	$(CXX) -MM $(CPPFLAGS) $< > $@.$$$$; \
	sed 's,\($*\)\.o[ :]*,\1.opp $@ : ,g' < $@.$$$$ > $@; \
	rm -f $@.$$$$

# Include dependency rules
-include $(SRCSCPP:.cpp=.dpp)
-include $(SRCSC:.c=.d)

###############################################################################
#
# $Log: not supported by cvs2svn $
# Revision 1.2  2009-09-29 11:31:48  amaula
# Should be complete now.
#
# Revision 1.1  2009-09-29 09:05:16  amaula
# Almost working.
#
# Revision 1.4  2007-07-09 07:20:13  amaula
# realclean rule updated
#
# Revision 1.3  2007/07/09 07:16:59  amaula
# Clean rule updated
#
# Revision 1.2  2007/07/06 13:25:35  amaula
# Removed XML dependency
#
# Revision 1.1  2007/07/06 13:25:01  amaula
# Updated to compile cleanly.
#
###############################################################################


